package pcsr.hwVirtualization;

/**
 * Establish the contract used by actuators and sensors to change their state in the robot and send it to the driver.
 * this interface is implemented by <code>Robot</code>, 
 * so that <code>Actuator</code>s and <code>Sensor</code>s can delegate state updates to him.
 * 
 * @author Paulo Fagundes
 *
 * @see Robot
 * @see Actuator
 * @see Sensor
 */
public interface IRobotDriver {

	/**
	 * Set the new <code>Actuator</code> state into the driver.
	 * @param actuator The <code>Actuator</code> state to be sent to the driver.
	 * @see Actuator
	 */
	void SetActuatorStatusToDriver( final Actuator actuator );
	
	/**
	 * Set the new <code>Sensor</code> state into the driver.
	 * @param sensor The <code>Sensor</code> state to be sent to the driver.
	 * @see Sensor
	 */
	void SetSensorStatusToDriver( final Sensor sensor );
			
}
